Providing Playback Timing in a Multi-Zone Audio Environment

ABSTRACT

A multi-channel and multi-zone audio environment is provided. Various inventions are disclosed that allow playback devices on one or more networks to provide an effective multi-channel and a multi-zone audio environment using timing information. According to one example, timing information is used to coordinate playback devices connected over a low-latency network to provide audio along with a video display. In another example, timing information is used to coordinate playback devices connected over a mesh network to provide audio in one or more zones or zone groups.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.13/632,731 titled “Providing a Multi-Channel and Multi-Zone AudioEnvironment,” filed on Oct. 1, 2012, and currently pending. The entirecontents of the Ser. No. 13/632,731 application are incorporated hereinby reference for all purposes.

FIELD OF THE DISCLOSURE

The disclosure is related to consumer goods and, more particularly, tosystems, products, features, services, and other items directed to mediaplayback or some aspect thereof.

BACKGROUND

Technological advancements have increased the accessibility of musiccontent, as well as other types of media, such as television content,movies, and interactive content. For example, a user can access audio,video, or both audio and video content over the Internet through anonline store, an Internet radio station, a music service, a movieservice, and so on, in addition to the more traditional avenues ofaccessing audio and video content. Demand for audio, video, and bothaudio and video content inside and outside of the home continues toincrease.

BRIEF DESCRIPTION OF THE DRAWINGS

Features, aspects, and advantages of the presently disclosed technologyare better understood with regard to the following description, appendedclaims, and accompanying drawings where:

FIG. 1 shows an example configuration in which certain embodiments maybe practiced;

FIG. 2A shows an illustration of an example zone player having abuilt-in amplifier and transducers;

FIG. 2B shows an illustration of an example zone player having abuilt-in amplifier and connected to external speakers;

FIG. 2C shows an illustration of an example zone player connected to anA/V receiver and speakers;

FIG. 3 shows an illustration of an example controller;

FIG. 4 shows an internal functional block diagram of an example zoneplayer;

FIG. 5 shows an internal functional block diagram of an examplecontroller;

FIG. 6 shows an example ad-hoc playback network;

FIG. 7 shows an example network audio system in accordance with anembodiment;

FIG. 8 shows the network audio system of FIG. 7 in operation;

FIG. 9 shows a flowchart representative of an example method to assigntiming information in a home theater like environment;

FIG. 10 shows a flowchart representative of an example method to assigntiming information in a home theater like environment and a zone group;

FIG. 11 shows a flowchart representative of an example method to adjusttimestamps;

FIG. 12 shows an internal functional block diagram of a primary zoneplayer to provide low-latency audio;

FIG. 13 shows an internal functional block diagram of a satellite zoneplayer to provide low-latency audio in combination with the primary zoneplayer of FIG. 12; and

FIG. 14 shows a block diagram of an example zone player network in whicha primary zone player is connected to satellite players in a starnetwork and to additional zone players via a mesh network.

In addition, the drawings are for the purpose of illustrating exampleembodiments, but it is understood that the inventions are not limited tothe arrangements and instrumentality shown in the drawings.

DETAILED DESCRIPTION I. Overview

Embodiments disclosed herein enable coordinated playback amongst playersfor use in a home theater environment, a zone group environment, orboth. Particularly, the embodiments provide for the distribution ofaudio information that corresponds to video.

Certain embodiments provide one or more methods, systems, apparatus,and/or machine-readable mediums to distribute audio information, such asaudio information that corresponds to video.

Certain embodiments provide a method to distribute audio information.The example method includes receiving an audio signal at a first devicefrom an audio source. The example method includes identifying hometheater audio information contained in the audio signal for playback bya plurality of home theater players. The example method includesidentifying zone group audio information contained in the audio signalfor playback by one or more players in a zone group. The example methodincludes assigning one or more timestamps to home theater audioinformation that indicates a time at which audio is to be played by theplurality of home theater players. The example method includes assigninga zone group timestamp to the zone group audio information thatindicates a time at which audio is to be played by the one or moreplayers in the zone group. The example method includes sending, from thefirst device, the home theater audio information with the one or moretimestamps to the plurality of home theater players and sending the zonegroup audio information with the zone group timestamp to the one or moreplayers in the zone group.

Certain embodiments provide a tangible machine-readable medium havinginstructions stored thereon that, when executed, cause a machine to atleast receive an audio signal at a first device from an audio source.The example instructions cause the machine to at least identify hometheater audio information contained in the audio signal for playback bya plurality of home theater players. The example instructions cause themachine to at least identify zone group audio information contained inthe audio signal for playback by one or more players in a zone group.The example instructions cause the machine to at least assign one ormore timestamps to home theater audio information that indicates a timeat which audio is to be played by the plurality of home theater players.The example instructions cause the machine to at least assign a zonegroup timestamp to the zone group audio information that indicates atime at which audio is to be played by the one or more players in thezone group. The example instructions cause the machine to at least send,from the first device, the home theater audio information with the oneor more timestamps to the plurality of home theater players and sendingthe zone group audio information with the zone group timestamp to theone or more players in the zone group.

II. An Example Operating Environment

Referring now to the drawings, in which like numerals can refer to likeparts throughout the figures, FIG. 1 shows an example systemconfiguration 100 in which one or more embodiments disclosed herein canbe practiced or implemented.

By way of illustration, the system configuration 100 represents a homewith multiple zones, though the home could have been configured withonly one zone. Each zone, for example, may represent a different room orspace, such as an office, bathroom, bedroom, kitchen, dining room,family room, home theater room, utility or laundry room, and patio. Azone may also include an area inside a home, building, or vehicle oroutside and as such may include any spatial area. A single zone mightalso include multiple rooms or spaces if so configured. One or more ofzone players 102-124 are shown in each respective zone. A zone player102-124, also referred to herein as a playback device, multimedia unit,speaker, player, and so on, provides audio, video, and/or audiovisualoutput. A controller 130 (e.g., shown in the kitchen for purposes ofillustration) provides control to the system configuration 100.Controller 130 may be fixed to a zone, or alternatively, mobile suchthat it can be moved about the zones. The system configuration 100 mayalso include more than one controller 130. The system configuration 100illustrates an example whole house audio system, though it is understoodthat the technology described herein is not limited to its particularplace of application or to an expansive system like a whole house audiosystem 100 of FIG. 1.

a. Example Zone Players

FIGS. 2A, 2B, and 2C show example types of zone players. Zone players200, 202, and 204 of FIGS. 2A, 2B, and 2C, respectively, can correspondto any of the zone players 102-124 of FIG. 1, for example. In someembodiments, audio is reproduced using only a single zone player, suchas by a full-range player. In some embodiments, audio is reproducedusing two or more zone players, such as by using a combination offull-range players or a combination of full-range and specializedplayers. In some embodiments, zone players 200-204 may also be referredto as a “smart speaker,” because they contain processing capabilitiesbeyond the reproduction of audio, more of which is described below.

FIG. 2A illustrates zone player 200 that includes sound producingequipment 208 capable of reproducing full-range sound. The sound maycome from an audio signal that is received and processed by zone player200 over a wired or wireless data network. Sound producing equipment 208includes one or more built-in amplifiers and one or more acoustictransducers (e.g., speakers). A built-in amplifier is described morebelow with respect to FIG. 4. A speaker or acoustic transducer caninclude, for example, any of a tweeter, a mid-range driver, a low-rangedriver, and a subwoofer. In some embodiments, zone player 200 can bestatically or dynamically configured to play stereophonic audio,monaural audio, or both. In some embodiments, zone player 200 isconfigured to reproduce a subset of full-range sound, such as when zoneplayer 200 is grouped with other zone players to play stereophonicaudio, monaural audio, and/or surround audio or when the audio contentreceived by zone player 200 is less than full-range.

FIG. 2B illustrates zone player 202 that includes a built-in amplifierto power a set of detached speakers 210. A detached speaker can include,for example, any type of loudspeaker. Zone player 202 may be configuredto power one, two, or more separate loudspeakers. Zone player 202 may beconfigured to communicate an audio signal (e.g., right and left channelaudio or more channels depending on its configuration) to the detachedspeakers 210 via a wired path.

FIG. 2C illustrates zone player 204 that does not include a built-inamplifier, but is configured to communicate an audio signal, receivedover a data network, to an audio (or “audio/video”) receiver 214 withbuilt-in amplification.

Referring back to FIG. 1, in some embodiments, one, some, or all of thezone players 102 to 124 can retrieve audio directly from a source. Forexample, a zone player may contain a playlist or queue of audio items tobe played (also referred to herein as a “playback queue”). Each item inthe queue may comprise a uniform resource identifier (URI) or some otheridentifier. The URI or identifier can point the zone player to the audiosource. The audio source might be found on the Internet (e.g., thecloud), locally from another device over data network 128 (describedfurther below), from the controller 130, stored on the zone playeritself, or from an audio source communicating directly to the zoneplayer. In some embodiments, the zone player can reproduce the audioitself, send it to another zone player for reproduction, or both wherethe audio is played by the zone player and one or more additional zoneplayers in synchrony. In some embodiments, the zone player can play afirst audio content (or not play at all), while sending a second,different audio content to another zone player(s) for reproduction.

By way of illustration, SONOS, Inc. of Santa Barbara, Calif. presentlyoffers for sale zone players currently referred to as a “PLAY:5,”“PLAY:3,” “CONNECT:AMP,” “CONNECT,” and “SUB.” Any other past, present,and/or future zone players can additionally or alternatively be used toimplement the zone players of example embodiments disclosed herein.Additionally, it is understood that a zone player is not limited to theparticular examples illustrated in FIGS. 2A, 2B, and 2C or to the SONOSproduct offerings. For example, a zone player may include a wired orwireless headphone. In yet another example, a zone player might includea sound bar for television. In yet another example, a zone player caninclude or interact with a docking station for an Apple IPOD™ or similardevice.

b. Example Controllers

FIG. 3 illustrates an example wireless controller 300 in docking station302. By way of illustration, controller 300 can correspond tocontrolling device 130 of FIG. 1. Docking station 302, if provided, maybe used to charge a battery of controller 300. In some embodiments,controller 300 is provided with a touch screen 304 that allows a user tointeract through touch with the controller 300, for example, to retrieveand navigate a playlist of audio items, control operations of one ormore zone players, and provide overall control of the systemconfiguration 100. In certain embodiments, any number of controllers canbe used to control the system configuration 100. In some embodiments,there can be a limit set on the number of controllers that can controlthe system configuration 100. The controllers might be wireless likewireless controller 300 or wired to data network 128.

In some embodiments, if more than one controller is used in system 100,then each controller may be coordinated to display common content, andmay all be dynamically updated to indicate changes made from a singlecontroller. Coordination can occur, for instance, by a controllerperiodically requesting a state variable directly or indirectly from oneor more zone players; the state variable may provide information aboutsystem 100, such as current zone group configuration, what is playing inone or more zones, volume levels, and other items of interest. The statevariable may be passed around on data network 128 between zone players(and controllers, if so desired) as needed or as often as programmed.

In addition, an application running on any network-enabled portabledevice, such as an IPHONE®, IPAD®, ANDROID™ powered phone, or any othersmart phone or network-enabled device can be used as controller 130. Anapplication running on a laptop or desktop personal computer (PC) orMAC® can also be used as controller 130. Such controllers may connect tosystem 100 through an interface with data network 128, a zone player, awireless router, or using some other configured connection path. Examplecontrollers offered by Sonos, Inc. of Santa Barbara, Calif. include a“Controller 200,” “SONOS® CONTROL,” “SONOS® Controller for IPHONE®,”“SONOS® Controller for IPAD®,” “SONOS® Controller for ANDROID™,” “SONOS®Controller for MAC® or PC.”

c. Example Data Connection

Zone players 102 to 124 of FIG. 1 are coupled directly or indirectly toa data network, such as data network 128. Controller 130 may also becoupled directly or indirectly to data network 128 or individual zoneplayers. Data network 128 is represented by an octagon in the figure tostand out from other representative components. While data network 128is shown in a single location, it is understood that such a network isdistributed in and around system 100. Particularly, data network 128 canbe a wired network, a wireless network, or a combination of both wiredand wireless networks. In some embodiments, one or more of the zoneplayers 102-124 are wirelessly coupled to data network 128 based on aproprietary mesh network. In some embodiments, one or more of the zoneplayers 102-124 are wirelessly coupled to data network 128 using anon-mesh topology. In some embodiments, one or more of the zone players102-124 are coupled via a wire to data network 128 using Ethernet orsimilar technology. In addition to the one or more zone players 102-124connecting to data network 128, data network 128 can further allowaccess to a wide area network, such as the Internet.

In some embodiments, connecting any of the zone players 102-124, or someother connecting device, to a broadband router, can create data network128. Other zone players 102-124 can then be added wired or wirelessly tothe data network 128. For example, a zone player (e.g., any of zoneplayers 102-124) can be added to the system configuration 100 by simplypressing a button on the zone player itself (or perform some otheraction), which enables a connection to be made to data network 128. Thebroadband router can be connected to an Internet Service Provider (ISP),for example. The broadband router can be used to form another datanetwork within the system configuration 100, which can be used in otherapplications (e.g., web surfing). Data network 128 can also be used inother applications, if so programmed. An example, second network mayimplement SONOSNET™ protocol, developed by SONOS, Inc. of Santa Barbara.SONOSNET™ represents a secure, AES-encrypted, peer-to-peer wireless meshnetwork. Alternatively, in certain embodiments, the data network 128 isthe same network, such as a traditional wired or wireless network, usedfor other applications in the household.

d. Example Zone Configurations

A particular zone can contain one or more zone players. For example, thefamily room of FIG. 1 contains two zone players 106 and 108, while thekitchen is shown with one zone player 102. In another example, the hometheater room contains additional zone players to play audio from a 5.1channel or greater audio source (e.g., a movie encoded with 5.1 orgreater audio channels). In some embodiments, one can position a zoneplayer in a room or space and assign the zone player to a new orexisting zone via controller 130. As such, zones may be created,combined with another zone, removed, and given a specific name (e.g.,“Kitchen”), if so desired and programmed to do so with controller 130.Moreover, in some embodiments, zone configurations may be dynamicallychanged even after being configured using controller 130 or some othermechanism.

In some embodiments, if a zone contains two or more zone players, suchas the two zone players 106 and 108 in the family room, then the twozone players 106 and 108 can be configured to play the same audio sourcein synchrony, or the two zone players 106 and 108 can be paired to playtwo separate sounds in left and right channels, for example. In otherwords, the stereo effects of a sound can be reproduced or enhancedthrough the two zone players 106 and 108, one for the left sound and theother for the right sound. In certain embodiments, paired zone players(also referred to as “bonded zone players”) can play audio in synchronywith other zone players in the same or different zones.

In some embodiments, two or more zone players can be sonicallyconsolidated to form a single, consolidated zone player. A consolidatedzone player (though made up of multiple, separate devices) can beconfigured to process and reproduce sound differently than anunconsolidated zone player or zone players that are paired, because aconsolidated zone player will have additional speaker drivers from whichsound can be passed. The consolidated zone player can further be pairedwith a single zone player or yet another consolidated zone player. Eachplayback device of a consolidated playback device can be set in aconsolidated mode, for example.

According to some embodiments, one can continue to do any of: group,consolidate, and pair zone players, for example, until a desiredconfiguration is complete. The actions of grouping, consolidation, andpairing are preferably performed through a control interface, such asusing controller 130, and not by physically connecting and re-connectingspeaker wire, for example, to individual, discrete speakers to createdifferent configurations. As such, certain embodiments described hereinprovide a more flexible and dynamic platform through which soundreproduction can be offered to the end-user.

e. Example Audio Sources

In some embodiments, each zone can play from the same audio source asanother zone or each zone can play from a different audio source. Forexample, someone can be grilling on the patio and listening to jazzmusic via zone player 124, while someone is preparing food in thekitchen and listening to classical music via zone player 102. Further,someone can be in the office listening to the same jazz music via zoneplayer 110 that is playing on the patio via zone player 124. In someembodiments, the jazz music played via zone players 110 and 124 isplayed in synchrony. Synchronizing playback amongst zones allows forsomeone to pass through zones while seamlessly (or substantiallyseamlessly) listening to the audio. Further, zones can be put into a“party mode” such that all associated zones will play audio insynchrony.

Sources of audio content to be played by zone players 102-124 arenumerous. In some embodiments, music on a zone player itself may beaccessed and a played. In some embodiments, music from a personallibrary stored on a computer or networked-attached storage (NAS) may beaccessed via the data network 128 and played. In some embodiments,Internet radio stations, shows, and podcasts can be accessed via thedata network 128. Music or cloud services that let a user stream and/ordownload music and audio content can be accessed via the data network128. Further, music can be obtained from traditional sources, such as aturntable or CD player, via a line-in connection to a zone player, forexample. Audio content can also be accessed using a different protocol,such as AIRPLAY™, which is a wireless technology by Apple, Inc., forexample. Audio content received from one or more sources can be sharedamongst the zone players 102 to 124 via data network 128 and/orcontroller 130. The above-disclosed sources of audio content arereferred to herein as network-based audio information sources. However,network-based audio information sources are not limited thereto.

In some embodiments, the example home theater zone players 116, 118, 120are coupled to an audio information source such as a television 132. Insome examples, the television 132 is used as a source of audio for thehome theater zone players 116, 118, 120, while in other examples audioinformation from the television 132 can be shared with any of the zoneplayers 102-124 in the audio system 100.

III. Example Zone Players

Referring now to FIG. 4, there is shown an example block diagram of azone player 400 in accordance with an embodiment. Zone player 400includes a network interface 402, a processor 408, a memory 410, anaudio processing component 412, one or more modules 414, an audioamplifier 416, and a speaker unit 418 coupled to the audio amplifier416. FIG. 2A shows an example illustration of such a zone player. Othertypes of zone players may not include the speaker unit 418 (e.g., suchas shown in FIG. 2B) or the audio amplifier 416 (e.g., such as shown inFIG. 2C). Further, it is contemplated that the zone player 400 can beintegrated into another component. For example, the zone player 400could be constructed as part of a television, lighting, or some otherdevice for indoor or outdoor use.

In some embodiments, network interface 402 facilitates a data flowbetween zone player 400 and other devices on a data network 128. In someembodiments, in addition to getting audio from another zone player ordevice on data network 128, zone player 400 may access audio directlyfrom the audio source, such as over a wide area network or on the localnetwork. In some embodiments, the network interface 402 can furtherhandle the address part of each packet so that it gets to the rightdestination or intercepts packets destined for the zone player 400.Accordingly, in certain embodiments, each of the packets includes anInternet Protocol (IP)-based source address as well as an IP-baseddestination address.

In some embodiments, network interface 402 can include one or both of awireless interface 404 and a wired interface 406. The wireless interface404, also referred to as a radio frequency (RF) interface, providesnetwork interface functions for the zone player 400 to wirelesslycommunicate with other devices (e.g., other zone player(s), speaker(s),receiver(s), component(s) associated with the data network 128, and soon) in accordance with a communication protocol (e.g., any wirelessstandard including IEEE 802.11a, 802.11b, 802.11g, 802.11n, or 802.15).Wireless interface 404 may include one or more radios. To receivewireless signals and to provide the wireless signals to the wirelessinterface 404 and to transmit wireless signals, the zone player 400includes one or more antennas 420. The wired interface 406 providesnetwork interface functions for the zone player 400 to communicate overa wire with other devices in accordance with a communication protocol(e.g., IEEE 802.3). In some embodiments, a zone player includes multiplewireless 404 interfaces. In some embodiments, a zone player includesmultiple wired 406 interfaces. In some embodiments, a zone playerincludes both of the interfaces 404 and 406. In some embodiments, a zoneplayer 400 includes only the wireless interface 404 or the wiredinterface 406.

In some embodiments, the processor 408 is a clock-driven electronicdevice that is configured to process input data according toinstructions stored in memory 410. The memory 410 is data storage thatcan be loaded with one or more software module(s) 414, which can beexecuted by the processor 408 to achieve certain tasks. In theillustrated embodiment, the memory 410 is a tangible machine-readablemedium storing instructions that can be executed by the processor 408.In some embodiments, a task might be for the zone player 400 to retrieveaudio data from another zone player or a device on a network (e.g.,using a uniform resource locator (URL) or some other identifier). Insome embodiments, a task may be for the zone player 400 to send audiodata to another zone player or device on a network. In some embodiments,a task may be for the zone player 400 to synchronize playback of audiowith one or more additional zone players. In some embodiments, a taskmay be to pair the zone player 400 with one or more zone players tocreate a multi-channel audio environment. Additional or alternativetasks can be achieved via the one or more software module(s) 414 and theprocessor 408.

The audio processing component 412 can include one or moredigital-to-analog converters (DAC), an audio preprocessing component, anaudio enhancement component or a digital signal processor, and so on. Insome embodiments, the audio processing component 412 may be part ofprocessor 408. In some embodiments, the audio that is retrieved via thenetwork interface 402 is processed and/or intentionally altered by theaudio processing component 412. Further, the audio processing component412 can produce analog audio signals. The processed analog audio signalsare then provided to the audio amplifier 416 for play back throughspeakers 418. In addition, the audio processing component 412 caninclude circuitry to process analog or digital signals as inputs to playfrom zone player 400, send to another zone player on a network, or bothplay and send to another zone player on the network. An example inputincludes a line-in connection (e.g., an auto-detecting 3.5 mm audioline-in connection).

The audio amplifier 416 is a device(s) that amplifies audio signals to alevel for driving one or more speakers 418. The one or more speakers 418can include an individual transducer (e.g., a “driver”) or a completespeaker system that includes an enclosure including one or more drivers.A particular driver can be a subwoofer (e.g., for low frequencies), amid-range driver (e.g., for middle frequencies), and a tweeter (e.g.,for high frequencies), for example. An enclosure can be sealed orported, for example. Each transducer may be driven by its own individualamplifier.

A commercial example, presently known as the PLAY:5™, is a zone playerwith a built-in amplifier and speakers that is capable of retrievingaudio directly from the source, such as on the Internet or on the localnetwork, for example. In particular, the PLAY:5™ is a five-amp,five-driver speaker system that includes two tweeters, two mid-rangedrivers, and one woofer. When playing audio content via the PLAY:5, theleft audio data of a track is sent out of the left tweeter and leftmid-range driver, the right audio data of a track is sent out of theright tweeter and the right mid-range driver, and mono bass is sent outof the subwoofer. Further, both mid-range drivers and both tweeters havethe same equalization (or substantially the same equalization). That is,they are both sent the same frequencies but from different channels ofaudio. Audio from Internet radio stations, online music and videoservices, downloaded music, analog audio inputs, television, DVD, and soon, can be played from the PLAY:5™.

IV. Example Controller

Referring now to FIG. 5, there is shown an example block diagram forcontroller 500, which can correspond to the controlling device 130 inFIG. 1. Controller 500 can be used to facilitate the control ofmulti-media applications, automation and others in a system. Inparticular, the controller 500 may be configured to facilitate aselection of a plurality of audio sources available on the network andenable control of one or more zone players (e.g., the zone players102-124 in FIG. 1) through a wireless or wired network interface 508.According to one embodiment, the wireless communications is based on anindustry standard (e.g., infrared, radio, wireless standards includingIEEE 802.11a, 802.11b, 802.11g, 802.11n, 802.15, and so on). Further,when a particular audio is being accessed via the controller 500 orbeing played via a zone player, a picture (e.g., album art) or any otherdata, associated with the audio and/or audio source can be transmittedfrom a zone player or other electronic device to controller 500 fordisplay.

Controller 500 is provided with a screen 502 and an input interface 514that allows a user to interact with the controller 500, for example, tonavigate a playlist of many multimedia items and to control operationsof one or more zone players. The screen 502 on the controller 500 can bean LCD screen, for example. The screen 500 communicates with and iscommanded by a screen driver 504 that is controlled by a microcontroller(e.g., a processor) 506. The memory 510 can be loaded with one or moreapplication modules 512 that can be executed by the microcontroller 506with or without a user input via the user interface 514 to achievecertain tasks. In some embodiments, an application module 512 isconfigured to facilitate grouping a number of selected zone players intoa zone group and synchronizing the zone players for audio play back. Insome embodiments, an application module 512 is configured to control theaudio sounds (e.g., volume) of the zone players in a zone group. Inoperation, when the microcontroller 506 executes one or more of theapplication modules 512, the screen driver 504 generates control signalsto drive the screen 502 to display an application specific userinterface accordingly.

The controller 500 includes a network interface 508 that facilitateswired or wireless communication with a zone player. In some embodiments,the commands such as volume control and audio playback synchronizationare sent via the network interface 508. In some embodiments, a savedzone group configuration is transmitted between a zone player and acontroller via the network interface 508. The controller 500 can controlone or more zone players, such as 102-124 of FIG. 1. There can be morethan one controller for a particular system, and each controller mayshare common information with another controller, or retrieve the commoninformation from a zone player, if such a zone player storesconfiguration data (e.g., such as a state variable). Further, acontroller can be integrated into a zone player.

It should be noted that other network-enabled devices such as anIPHONE®, IPAD® or any other smart phone or network-enabled device (e.g.,a networked computer such as a PC or MAC®) can also be used as acontroller to interact or control zone players in a particularenvironment. In some embodiments, a software application or upgrade canbe downloaded onto a network-enabled device to perform the functionsdescribed herein.

In certain embodiments, a user can create a zone group (also referred toas a bonded zone) including at least two zone players from thecontroller 500. The zone players in the zone group can play audio in asynchronized fashion, such that all of the zone players in the zonegroup play back an identical audio source or a list of identical audiosources in a synchronized manner such that no (or substantially no)audible delays or hiccups are to be heard. Similarly, in someembodiments, when a user increases the audio volume of the group fromthe controller 500, the signals or data of increasing the audio volumefor the group are sent to one of the zone players and causes other zoneplayers in the group to be increased together in volume.

A user via the controller 500 can group zone players into a zone groupby activating a “Link Zones” or “Add Zone” soft button, or de-grouping azone group by activating an “Unlink Zones” or “Drop Zone” button. Forexample, one mechanism for ‘joining’ zone players together for audioplay back is to link a number of zone players together to form a group.To link a number of zone players together, a user can manually link eachzone player or room one after the other. For example, assume that thereis a multi-zone system that includes the following zones: Bathroom,Bedroom, Den, Dining Room, Family Room, and Foyer.

In certain embodiments, a user can link any number of the six zoneplayers, for example, by starting with a single zone and then manuallylinking each zone to that zone.

In certain embodiments, a set of zones can be dynamically linkedtogether using a command to create a zone scene or theme (subsequent tofirst creating the zone scene). For instance, a “Morning” zone scenecommand can link the Bedroom, Office, and Kitchen zones together in oneaction. Without this single command, the user would manually andindividually link each zone. The single command may include a mouseclick, a double mouse click, a button press, a gesture, or some otherprogrammed action. Other kinds of zone scenes can be programmed.

In certain embodiments, a zone scene can be triggered based on time(e.g., an alarm clock function). For instance, a zone scene can be setto apply at 8:00 am. The system can link appropriate zonesautomatically, set specific music to play, and then stop the music aftera defined duration. Although any particular zone can be triggered to an“On” or “Off” state based on time, for example, a zone scene enables anyzone(s) linked to the scene to play a predefined audio (e.g., afavorable song, a predefined playlist) at a specific time and/or for aspecific duration. If, for any reason, the scheduled music failed to beplayed (e.g., an empty playlist, no connection to a share, failedUniversal Plug and Play (UPnP), no Internet connection for an InternetRadio station, and so on), a backup buzzer can be programmed to sound.The buzzer can include a sound file that is stored in a zone player, forexample.

V. Example Ad-Hoc Network

Certain particular examples are now provided in connection with FIG. 6to describe, for purposes of illustration, certain systems and methodsto provide and facilitate connection to a playback network. FIG. 6 showsthat there are three zone players 602, 604 and 606 and a controller 608that form a network branch that is also referred to as an Ad-Hoc network610. The network 610 may be wireless, wired, or a combination of wiredand wireless. In general, an Ad-Hoc (or “spontaneous”) network is alocal area network or other small network in which there is generally noone access point for all traffic. With an established Ad-Hoc network610, the devices 602, 604, 606 and 608 can all communicate with eachother in a “peer-to-peer” style of communication, for example.Furthermore, devices may join and/or leave from the network 610, and thenetwork 610 may automatically reconfigure itself without needing theuser to reconfigure the network 610. While an Ad-Hoc network isreferenced in FIG. 6, it is understood that a playback network may bebased on a type of network that is completely or partially differentfrom an Ad-Hoc network.

Using the Ad-Hoc network 610, the devices 602, 604, 606, and 608 canshare or exchange one or more audio sources and be dynamically groupedto play the same or different audio sources. For example, the devices602 and 604 are grouped to playback one piece of music, and at the sametime, the device 606 plays back another piece of music. In other words,the devices 602, 604, 606 and 608, as shown in FIG. 6, form a HOUSEHOLDthat distributes audio and/or reproduces sound. As used herein, the termHOUSEHOLD (provided in uppercase letters to disambiguate from the user'sdomicile) is used to represent a collection of networked devices thatare cooperating to provide an application or service. An instance of aHOUSEHOLD is identified with a household 610 (or household identifier),though a HOUSEHOLD may be identified with a different area or place.

In certain embodiments, a household identifier (HHID) is a short stringor an identifier that is computer-generated to help ensure that it isunique. Accordingly, the network 610 can be characterized by a uniqueHHID and a unique set of configuration variables or parameters, such aschannels (e.g., respective frequency bands), service set identifier(SSID) (a sequence of alphanumeric characters as a name of a wirelessnetwork), and WEP keys (wired equivalent privacy or other securitykeys). In certain embodiments, SSID is set to be the same as HHID.

In certain embodiments, each HOUSEHOLD includes two types of networknodes: a control point (CP) and a zone player (ZP). The control pointcontrols an overall network setup process and sequencing, including anautomatic generation of required network parameters (e.g., WEP keys). Inan embodiment, the CP also provides the user with a HOUSEHOLDconfiguration user interface. The CP function can be provided by acomputer running a CP application module, or by a handheld controller(e.g., the controller 308) also running a CP application module, forexample. The zone player is any other device on the network that isplaced to participate in the automatic configuration process. The ZP, asa notation used herein, includes the controller 308 or a computingdevice, for example. In some embodiments, the functionality, or certainparts of the functionality, in both the CP and the ZP are combined at asingle node (e.g., a ZP contains a CP or vice-versa).

In certain embodiments, configuration of a HOUSEHOLD involves multipleCPs and ZPs that rendezvous and establish a known configuration suchthat they can use a standard networking protocol (e.g., IP over Wired orWireless Ethernet) for communication. In an embodiment, two types ofnetworks/protocols are employed: Ethernet 802.3 and Wireless 802.11g.Interconnections between a CP and a ZP can use either of thenetworks/protocols. A device in the system as a member of a HOUSEHOLDcan connect to both networks simultaneously.

In an environment that has both networks in use, it is assumed that atleast one device in a system is connected to both as a bridging device,thus providing bridging services between wired/wireless networks forothers. The zone player 606 in FIG. 6 is shown to be connected to bothnetworks, for example. The connectivity to the network 612 is based onEthernet and/or Wireless, while the connectivity to other devices 602,604 and 608 is based on Wireless and Ethernet if so desired.

It is understood, however, that in some embodiments each zone player606, 604, 602 may access the Internet when retrieving media from thecloud (e.g., the Internet) via the bridging device. For example, zoneplayer 602 may contain a uniform resource locator (URL) that specifiesan address to a particular audio track in the cloud. Using the URL, thezone player 602 may retrieve the audio track from the cloud, andultimately play the audio out of one or more zone players.

VI. Example Home Theater Environment

FIG. 7 illustrates an example network audio system 700 constructed inaccordance with an embodiment. The network audio system 700 includes aplayback device 702, a first group of one or more playback devicesgenerally identified by reference numeral 704, and a second group of oneor more playback devices generally identified by reference numeral 706.The playback devices 702, 704, and 706 operate under the control of oneor more user interface modules generally identified by reference numeral708. In an embodiment, the network audio system 700, including the userinterface (UI) 708, are shown in FIG. 1 as the system 100 and thecontroller 130, respectively.

As shown in FIG. 7, the playback device 702 is connected directly orin-directly to a video device 710 that contains, or is connected to, adisplay for the purpose of viewing video. The video device 710 mayinclude any of a digital video receiver like an Apple TV, cable orsatellite box, Blu-ray player, television set, monitor, projector, orany other device or devices that is an audio source to the playbackdevice 702 via a wired or wireless connection 722, more of which isdescribed below.

Similar to the zone players described with respect to the system 100 ofFIG. 1, the playback devices 702 and 706 are connected to one or moreadditional audio sources, examples of which are identified in FIG. 7generally as local audio 712 and cloud content 714 via a networkinterface 716. The network interface 716 may include any of a networkrouter, modem, or other network device that allows access to devices onthe local area network and/or a wide area network such as the Internet.Local audio 712 may include any of local audio content, such as audiostored and/or accessible from a local device like a personal computer,laptop, mobile device, network accessible storage (NAS) device, an audioreproduction device connected to one of the playback devices 702, 704,and 706, or similar devices capable of storing digital information involatile or non-volatile form or streaming the digital audioinformation. Audio source at the cloud content 714 may include Internetaudio content or any other source of audio information via a wide areanetwork.

In one embodiment, the playback devices 704 are connected to the localaudio 712 and the cloud content 714 via the playback device 702 over theHT network 718. In another embodiment (not shown in FIG. 7), theplayback devices 704 are connected to the local audio 712 and the cloudcontent 714 via the ZG network 720.

With reference to the example illustrated in FIG. 7, the playback device702 may be connected to the playback devices 704 via a star network,generally referred to in the figure as home theater (HT) network 718,and to the playback devices 706 via a mesh network, generally referredto as zone group (ZG) network 720.

In an embodiment, the ZG network 720 is like the data network 128 ofFIG. 1. The ZG network 720 supports the playback of audio in synchronyamongst playback devices 706 and 702 that may be in ear-shot of eachother.

In an embodiment, the HT network 718 is a low-latency network to supporta higher coordination between audio and the corresponding video thanneeded by the ZG network 720. That is, the HT network 718 is configuredas a low-latency network to prevent or reduce lip synchronization issuesbetween the audio and corresponding video being played via the videodevice 710.

According to such embodiments, the playback devices 702 and 704 may beconfigured in a home theater arrangement in a single location, such asthe same room (e.g., a home theater room, family room, or some otherarea where surround sound is desired), and playback devices 706 may belocated in the same or different areas from the playback devices 702 and704. While the present disclosure is not limited to the particularnetwork types described herein, aspects of the HT network 718 and the ZGnetwork 720 are described more below.

In an embodiment, the playback device 702 may be used with the videodevice 710 to provide the sole reproduction of audio (or substantiallythe sole reproduction) for the video device 710. In this embodiment, theplayback device 702 may be configured, for example, to support theplayback of audio either in a single channel or multi-channel mode. Byway of illustration, traditional multi-channel modes include, amongothers, 2.0 (e.g., stereophonic sound), 2.1, 3.1, virtual 5.1, orvirtual 7.1 configurations, where the “0.1” typically represents thelow-frequency effects channel and virtual 5.1 and 7.1 configurationsrepresent a simulated surround sound effect. The playback device 702 mayplayback the audio according to a certain configuration based on itsparticular speaker design, how the incoming audio is encoded, based on auser configuration via the UI 708, or any combination of the three.According to this embodiment, the playback device 702 need not becoupled to the playback devices 704, because the playback device 702, byitself or without the use of another playback device, is used toreproduce the audio for the video device 710.

In another embodiment, the playback device 702 may operate with theplayback devices 704 to reproduce a home theater-style listeningenvironment. A home theater-style listening environment may ofteninclude a multi-channel surround field, such as 2.1, 3.1, 5.1, or 7.1channel audio reproductions to recreate the ambiance of a movie theater,but may include other types of multi-channel or single-channel audioplayback modes. For instance, the playback devices 704 might include anyof a subwoofer or group of subwoofers to reproduce the low-frequencyeffects channel (SUB), a playback device for each of the right rear andleft rear channels (SAT), and other playback devices depending on thesetup. As such, the playback devices 704 may only include one or moreplayback devices depending on the desired setup. In certain embodiments,playback devices may be dynamically added or removed from the playbackdevices 704 and the system (e.g., the playback devices 702 and 704)reconfigures itself accordingly.

In yet another embodiment, a coupling of the playback device 702 toplayback devices 706 via ZG network 720 enables audio from the videodevice 710 to be played in substantial synchrony by other playbackdevices 706, and furthermore allows the playback device 702 to beincluded in an overall audio system (e.g., system 100 shown in FIG. 1),in which additional benefits are provided. If the playback device 702 isnot coupled to the playback devices 706 via the ZG network 720, then aconnection 724 may be made directly (or indirectly) to network device716, such that the playback device 702 can be controlled by a wirelessenabled controller, has access to local audio content 712, has access tocloud content 714, and so on. In one embodiment, the connection 724 mayinclude wired Ethernet.

In yet another embodiment, a coupling of the playback device 702 to theplayback devices 704 via the HT network 718 and the playback devices 706via the ZG network 720 enables audio from the video device 710 to beplayed back concurrently by different sets of playback devices 704 and706, where the playback devices 704 operate using the low-latency HTnetwork 718 and the playback devices 706 operate using the ZG network720.

Regardless of whether the playback device 702 is connected to playbackdevices 704 and/or playback devices 706, the playback device 702 canadvantageously provide sound reproduction for the video device 710(e.g., a television set) and wired or wireless access to local audio 712and/or cloud content 714 for audio playback.

In an embodiment, similar to the controller 130 of FIG. 1, the UI 708 inFIG. 7 can be used to, among other things, configure any of playbackdevices 702, 704, and 706, such as to modify the audio equalization (EQ)settings, and enable zone group joining and disengaging. For instance,the UI 708 can enable dynamic joining and disengaging of any playbackdevices of the playback devices 702, 704, and 706 to one or more zonegroups (also referred to as synchrony groups). In other words, forinstance, if the playback device 702 is currently not a member of a zonegroup, for example, the playback device 702 may be joined to a zonegroup via UI 708, after which it will play the audio of that zone group.If the playback device 702 is currently a member of a zone group, theplayback device 702 may be disengaged from that zone group via the UI708. Alternatively, a new zone group may be created with the playbackdevice 702 and another playback device. Additionally, the UI 708 cancontrol other aspects of the network audio system 700, including but notlimited to the selection of the audio information source that aparticular playback device is to utilize, the volume of the audioplayback, to turn audio information source(s) on and off, and so on.

With respect to volume adjustment, in an embodiment, the UI 708 may beused to adjust playback volume by any of the individual playback devices702, 704, and/or 706 in addition to adjusting a group volume. Inoperation, the UI 708 can provide information identifying the particulardevice whose volume is to be adjusted, and the level at which the volumeis to be set to a master device or to the playback device, itself.

In an embodiment, the volume for the playback devices 702 and 704 mayact in a coordinated fashion such that the UI 708 displays a singlevolume control. As such, the manipulation of the single volume controlmay cause the playback devices 702 and 704 to increase or decrease involume. Each playback device of 702 and 704 may increase or decrease atthe same rate or different rates depending on the configuration.

In an embodiment, the playback device 702 determines the type ofincoming audio to be played and automatically adjusts the audio playbackto enhance the output. For example, stereo (or 2-channel) audio may beprocessed and played differently than audio consisting of more (or less)than 2 channels. In another example, audio that is associated with videois processed and played differently than audio that is not associatedwith video. In some embodiments, the adjustments are made based on thesource of the audio content (e.g., local audio 712 and/or cloud content714). In other embodiments, the adjustments are made based on interfaceover which the audio content arrives to the playback device (e.g., audiothat arrives over the network interface 402 or 1202, or audio thatarrives over the audio interface 410 or 1210). In yet other embodiments,the adjustments are made based on the application that was used toinitiate the audio playback (e.g., audio that is played using a YOUTUBE™application vs. audio played that is played using a SONOS® application).

In one embodiment, the playback device 702 may be configured toimplement a mode of operation referred to herein as “dialog enhancement”that provides an enhancement to audio that is associated with video sothat a user can more clearly understand speech. Particularly, in oneembodiment, the playback device 702 boosts the center channel, rolls offthe bass frequencies, lowers the volume of the satellites, andemphasizes the speech spectrum (e.g., 300 to 3400 Hz). In oneembodiment, the playback device 702 is configured via the UI 708 toimplement “dialog enhancement” mode of operation. In one embodiment,“dialog enhancement,” once configured with the playback device 702, isimplemented based on characteristics of the audio content (e.g., is theaudio associated with video, what interface does the audio contentarrive to the playback device, what application was used to initiate theaudio playback, and so on). For example, if “dialog enhancement” isconfigured on the playback device 702 and the audio content arrives fromthe video device 710 via connection 722, then the audio is adjustedaccording to the “dialog enhancement” mode.

In another embodiment, the playback device 702 may be configured toimplement a mode of operation referred to herein as “night mode” thatapplies dynamic range compression in addition to implementing “dialogenhancement.” In one embodiment, the playback device 702, is configuredvia the UI 708 to implement “night mode” mode of operation. In oneembodiment, “night mode,” once configured with the playback device 702,is implemented based on characteristics of the audio content (e.g., isthe audio associated with video, what interface does the audio contentarrive to the playback device, what application was used to initiate theaudio playback, and so on) as well as a temporal or environmentalcharacteristics (e.g., what time of day is it, is it dark outside, andso on). In one embodiment, the playback device 702 uses a light sensorto determine the relative brightness in the room to determine if theenvironmental characteristic is met for “night mode.” For example, ifthe light sensor detects, for example, a lux value of less than (<) 1,the environmental characteristic may be met for “night mode” use. Inanother embodiment, the playback device 702 uses a real-time clock todetermine if the temporal characteristic is met for “night mode” use.For example, if the real-time clock indicates the time is between, forexample, 8 pm and 6 am, the temporal characteristic may be met for“night mode” use.

In certain embodiments, the playback device 702 obtains audioinformation from an audio information source, such as the video device710 (and/or any other audio source such as local audio 712 and/or cloudcontent 714), adds playback timing information, and transmits thecombined audio and playback timing information to the playback devices704 over the HT network 718 for coordinated playback. The playbackdevice 702 may also transmit the combined audio and playback timinginformation to playback devices 706 over the ZG network 720 when theplayback device 702 is part of a zone group including any of playbackdevices 706 and the playback device 702 is the master device for thezone group. The playback timing information that is provided with theaudio information, together with clock timing information provided bythe playback device 702, enables the playback devices 704 and 706, if sogrouped, to coordinate playback of the audio information. As will bedescribed more below, the playback timing information is determined foreach particular playback device (or a particular group of playbackdevices) and its role in audio playback.

In certain embodiments, the playback device 702 is part of a zone groupincluding any of playback devices 706, where one of the playback devices706 is the master device for the zone group. If any of the playbackdevices 704 are grouped with the playback device 702, then the playbackdevice 702 modifies the playback timing information it receives from themaster device to match its local clock, and transmits the combined audioand modified timing information to the playback devices 704 over the HTnetwork 718 for coordinated playback. The playback timing informationthat is provided with the audio information, together with the clocktiming information provided by the playback device 702, enables theplayback devices 704 coordinate playback of the audio information with702 without having to explicitly coordinate with the one of the playbackdevices 706 which is the master device for the zone group.

In an embodiment, the playback device 702 transmits the audio andplayback timing information in messages over the HT network 718, thenetwork connection 724, and/or ZG network 720 using a multi-cast messagetransmission methodology. In some embodiments, each of the messagesincludes a multi-cast address (or some other ID or identifying address)that is used to identify the multi-cast group or members of themulti-cast group for which the message is intended. Each playback devicemonitors the messages on the network, and when a playback device detectsa message with its address or a multi-cast group address to which theplayback device belongs, they will receive and process the contents ofthe message. It is understood, however, that the playback device 702 maymake use of any convenient multi-cast or uni-cast (or other) messagetransmission methodology in transmitting the audio and playback timinginformation to the playback devices 704 and/or 706.

Irrespective of the transmission methodology, in an embodiment, theaudio and playback timing information is in the form of a series offrames, with each frame having a timestamp. The timestamp indicates atime, relative to the time indicated by a clock maintained by theplayback device 702 or some other designated reference device, at whichthe frame is to be played. Depending on the size or sizes of themessages used in the selected multi-cast message transmissionmethodology and the size or sizes of the frames, a message may containone frame, or multiple frames, or, alternatively, a frame may extendacross several messages. It is understood that the information includedin the timestamp(s) may alternatively be provided by the playback device702 to the playback devices 704 and/or 706 in periodic or non-periodicintervals instead of, or in addition to, in a series of frames.

In an embodiment, the playback device 702 may provide clock timeinformation to the playback devices 704 and/or 706 individually overnetworks 718 and/or 720 and/or 724, respectively, using a highlyaccurate clock time information transmission methodology. In oneembodiment, the system 700 utilizes an out-of-band protocol, such as theSNTP (Simple Network Time Protocol), to obtain current clock timeinformation from the playback device 702. The SNTP makes use of aunicast message transfer methodology, in which one device, such as theplayback device 702, provides clock time information to a specific otherdevice, such as any of the playback devices 704 and 706. According tothis embodiment, each of the playback devices 704 and/or 706 willperiodically initiate SNTP transactions to obtain the clock timeinformation from the playback device 702.

The playback devices 704 and/or 706 can make use of the clock timeinformation to determine the time differential between the timeindicated by the playback device's (702) clock and the time indicated byits respective clock, and use that time differential value, along withthe playback time information associated with the audio information andthe respective device's local time as indicated by its clock todetermine when the various frames are to be played. This enables theplayback devices 702, 704 and/or 706 to coordinate playback. Coordinatedplayback may not always result in perfect, or substantially perfect,synchrony as a result of using a wireless technology between playbackdevices 702, 704, and/or 706. In some instances, coordinated playbackincludes a user imposed delay, such that the audio is intentionally notplayed in synchrony, but rather exhibits a more theater-like listeningexperience.

Additionally, it is understood that the playback device 702 may nottransmit audio and playback timing information over the networks ifplayback devices 704 and 706 are not used. The playback device 702 canmaintain a count of the number of playback devices as they join anddisengage, and, if the number drops to zero, it can stop transmittingthe audio and playback timing information over any of the networks 718and/or 720. Furthermore, it is understood that there may be multiplesynchrony groups in the network audio system 700, and further that, forexample, playback device 702 may operate both as a master or primarydevice (e.g., a device that may be configured to provide audio andtiming information) and a slave device (e.g., a device that may beconfigured to receive the audio and timing information).

In an embodiment, when the playback device 702 provides the audioinformation to the playback devices 704 and/or 706, the playback device702 may divide the audio stream or file into a series of frames, witheach frame containing digital audio information for a predeterminedperiod of time. A particular frame in a digital audio stream may containa series of audio samples. Associated with each frame is a header thatincludes a number of fields for storing other information that is usefulin controlling playback of the audio samples in the respective frame.For instance, the header associated with a frame may include a framesequence number field, an encoding type field, a sampling rateinformation field, a timestamp field, an end of track flag, and a lengthflag field. The header may also include fields for storing otherinformation that is useful in controlling playback. Generally, the framesequence number field receives a sequence number that identifies therelative position of the frame in the sequence of frames containing thedigital audio stream. The encoding type field receives a value thatidentifies the type of encoding and/or compression that has been used ingenerating the digital audio stream. Depending on the audio source,conventional encoding and/or compression schemes include, for example,MP3, WMA, AAC, and WAV encoding and/or compression schemes, although itwill be appreciated that other schemes may be provided for as well. Thesampling rate information field receives sampling rate information thatindicates the sampling rate for the audio samples. The condition of theend of work flag indicates whether the frame contains the last digitalaudio samples for the audio track associated with the framed digitalaudio work. If the frame does not contain the audio samples that areassociated with the end of the digital audio stream for a respectiveaudio work, the end of work flag will be clear. On the other hand, ifthe frame does contain the audio samples that are associated with theend of the digital audio stream for a respective audio work, the end ofwork flag will be set. In addition, since the number of valid audiosamples in the frame, that is, the samples that are not padding, may beless than “S,” the default number of audio samples in a frame, thelength flag field will contain a value that identifies the number ofaudio samples in the last frame of the audio work.

According to an embodiment, the timestamp field stores a timestamp thatidentifies the time at which a particular playback device is to play therespective frame. More specifically, for each frame of a framed digitalaudio stream that is buffered in the audio information buffer, theplayback device 702, using timing information from its digital to analogconverter clock, can determine a time at which a particular playbackdevice is to play the respective frame, and stores a timestampidentifying the playback time in the timestamp field. The timestampassociated with each frame can be used by a playback scheduler (e.g.,contained within each of the playback devices 702, 704, and 706) todetermine when the portion of the digital audio stream stored in theframe is to be coupled to the digital to analog converter to initiateplayback. It will be appreciated that the timestamps that are associatedwith frames in sequential frames may be such that they can be playedback in order, and without an interruption between the sequential framescomprising the digital audio stream. The timestamps may also be suchthat frames will be played back after some slight time delay after theyhave been buffered in the audio information buffer.

FIG. 8 illustrates the example network audio system 700 of FIG. 7, wherethe playback device 702 is coupled to three different playback devicesat 704, via the HT network 718, and is grouped in a zone with at leastone other playback device 706, via the ZG network 720. Particularly, thethree playback devices 704 include a subwoofer (SUB) and two satellitespeakers (SAT). In the illustrative embodiment of FIG. 8, it is assumedthat the HT network 718 and the ZG network 720 are using wirelessnetworks, such as described above, in which audio information is beingsent wirelessly from the playback device 702 to the playback devices 704and 706. As such, certain timing delays are introduced by the playbackdevice 702 to enable the receiving devices to receive and process theaudio information. In other embodiments, the HT network 718 and/or theZG network 720 are using wired networks (e.g., 100 Mb or 1 Gb Ethernetnetworks). As such, certain timing delays may be different than thedelays introduced for wireless networks. In yet other embodiments, thetiming delays may be different depending on the number of zone playersthat are grouped together and/or the total number of zone players in thesystem. In addition, certain timing delays may be introduced to providea home-theater listening environment. In an embodiment, these timingdelays are reflected in the timestamps assigned to various audiochannels, groups of audio channels, or audio to be sent to a zone groupby the playback device 702.

In an embodiment, the playback device 702 determines that the playbackdevices 704, and in this example a SUB and two SATs, are part of itsconfiguration. To do so, for example, the playback device 702 can lookto a locally stored state variable that lists members of a group, ifany. Furthermore, the playback device 702 determines that it is a partof a zone group with one or more playback devices 706. Again, accordingto an example, the playback device 702 can look to the locally storedstate variable to make this determination. Upon receiving audioinformation from the video device 710 via connection 722, the playbackdevice 702 identifies the audio that is to be transmitted to theplayback devices 704 and the audio that is to be transmitted to theplayback devices 706. In some instances, the audio sent to variousplayback devices or groups of playback devices may be different. Inother words, the audio sent to the playback devices 706 might includeall of the available frequencies and/or channels, for example, whereasthe audio sent to the playback devices 704 might include different setsof frequencies and/or channels depending on the playback device and itspurpose.

For audio to be played by the playback device 702 and playback devices704, the playback device 702 may separate the audio into differentchannels, such as front-right, front-left, center, left-rear,right-rear, surround-right, surround-left, and subwoofer. If two or morechannels are to be played by the same device, then the playback device702 may group them together. For instance, the playback device 702 maybe configured to play the front-right, center, and front-left channels.Then, for each audio channel or group of channels, the playback device702 assigns a timestamp to the audio frame specifying the time at whichthe audio should be played by its respective device.

With reference to FIG. 8, a timestamp may be provided that indicates atime to play the three-channel audio (e.g., front-right, center, andfront-left channels) from the playback device 702, such that the time isdelayed by, for example, 5 milliseconds (ms) from when the correspondingvideo is to be displayed at time (t)=0.0 via the video device 710. Withrespect to the SUB channel, the playback device 702 may assign atimestamp of 10 ms past t=0.0. With respect to the SAT channels, theplayback device may assign each a timestamp of 15 ms past t=0.0. Notethat the SAT channels (and SUB channels, if multiple SUBs are groupedtogether) do not need to be assigned the same timestamp as each other,and can be assigned different timestamps. For instance, if a user issitting closer to the rear-left SAT, then its timing value may bedifferent from the rear-right SAT. The timing value may be adjusted viathe UI 708. The playback device 702 may then send the audio and timinginformation (audio and timing information may also be collectivelyreferred to as “audio information”) to the respective playback devices704 and assign them to a high priority queue, so as to be processed morequickly than traditional audio (e.g., audio from over the ZG network720) where video synchronization isn't available and/or necessary.

In another embodiment, a designated device other than the playbackdevice 702 assigns the timestamp.

In yet another embodiment, the playback devices 704 and/or 706themselves apply the delay at their respective devices to the receivedaudio information. In such an embodiment, the delay value(s) may beassigned to the playback devices 704 and/or 706 via the playback device702 or some other designated device.

For the playback devices 706, the playback device 702 may assign atimestamp that indicates a time to play the zone group audio informationat 20 ms past when the corresponding video is displayed at t=0 via thevideo device 710. A copy of the audio frames may be sent to eachplayback device within the playback devices 706, as each will mostlikely receive and play the same audio information. In an embodiment,the priority to send these audio frames to the playback devices 706 viathe ZG network may be lower than frames sent to the playback devices 704via the HT network 718.

It is understood that in one embodiment, the lower priority given to theplayback devices 706 is due to the desire to use the processingcapabilities at the playback device 702 to maintain a high coordinationbetween the video being displayed via the video device 710 and the audiobeing played via the playback device 702 and/or the playback devices704. If, however, the processing capabilities are not limited or arefast enough to process the audio information without human detection,then the use of priority becomes less relevant or unnecessary.

In an embodiment, the timestamp indicates a time to play the audio by aparticular player. As such, the timestamp includes a delay, if any, fora particular player or group of players. For instance, a delay of 5 msmay be applied to all playback devices 702 and 704 as a base-line delay.The base-line delay may be for time called for to process and/ordistribute the audio information to one or more players. Additionaldelays that are specific to the players may also be applied.Accordingly, the playback device 702 might be configured to play at t+5ms, the SUB might be configured to play at t+5 ms+5 ms, and the SATsmight each be configured to play at t+5 ms+10 ms, for example.

FIG. 9 shows a flowchart 900 representative of an example method toprovide audio with timestamps to the playback devices 704 via HT network718. In one embodiment, the method 900 is implemented in software and/orhardware of the playback device 702. Alternatively, the method 900 maybe implemented by a designated device that is different from theplayback device 702.

At block 902, the playback device 702 may receive an audio signal froman audio source such as the video device 710 via the connection 722. Theconnection 722 may utilize any of the Ethernet standards, an opticalfiber connection system like TOSLINK, an HDMI connection, an IEEE 802.11compliant wireless connection, or some other connection that allowstransmission of the audio signal to the playback device 702.

At block 904, the playback device 702 may process the incoming audiosignal by separating audio information contained in the audio signalinto different audio channels. The audio channels may include, forexample, any of a front-left, front-right, center, low-frequency,surround-left, surround-right, surround-back-left, andsurround-back-right. The playback device 702 may likewise group certainchannels together to be played by a single playback device, for example.An example of channel grouping includes grouping the front right, centerand front left channels together to be played by the playback device702.

At block 906, the playback device 702 assigns a timestamp to the audioinformation based on the channel, where the timestamp indicates a timeat which the audio is to be played by a particular playback device. Inone example, the front-left, front-right, and center are assigned atimestamp at or below 5 ms for playback device 702; the surround-leftand surround-right are assigned a timestamp at or below 15 ms for SATplayback devices 704; the subwoofer is assigned a timestamp at or below10 ms for the SUB playback device 704. The timestamp for the rearsurrounds may be based on adding an intentional delay to provide asurround effect. The timestamp for the subwoofer may be based onproviding enough time to receive audio packets wirelessly via the HTnetwork and based on the assumption that bass frequencies do not requirethe level of synchronization as higher frequencies. Additionally, thetime delays may also be based on content, or the source of content. Forexample, stereo audio may be played at different delays.

At block 908, the playback device 702 may send the different channels ofaudio information with their respective timestamps to the playbackdevices 704.

Alternatively, it is understood that the playback device 702 may forwardthe audio signal from the audio source onto the playback devices 704 viathe HT network 718 without separating the audio into separate channelsor groups of channels. As such, the respective, receiving playbackdevice can parse the data to find its channel information to playback.Additionally, the respective, receiving playback devices may store thedelay information and use that information to determine a playback timeinstead of the playback device 702 propagating the timestamp informationwith the audio information, as described above in block 906. FIG. 10shows a flowchart 1000 representative of an example method to provideaudio with timestamps to the playback devices 704 and playback devices706. In one embodiment, the method 1000 is implemented in softwareand/or hardware of the playback device 702. Alternatively, the method1000 may be implemented by a designated device that is different fromthe playback device 702.

At block 1002, the playback device 702 may receive an audio signal froman audio source, such as the video device 710 via the connection 722.

At block 1004, the playback device 702 may identify home theater audioinformation contained in the audio signal for playback by the playbackdevices 704 (e.g., home theater “HT” players).

At block 1006, the playback device 702 may identify zone group audioinformation contained in the audio signal for playback by the playbackdevices 706 (e.g., zone group “ZG” players). It is understood that zonegroup audio information is likely to overlap with home theater audioinformation. That is, the zone group audio information may contain all,or substantially all, of the frequencies found in the home theater audioinformation.

At block 1008, the playback device 702 may assign one or more timestampsto home theater audio information that indicates a time at which audiois to be played by the plurality of home theater players.

At block 1010, the playback device 702 may assign a zone group timestampto the zone group audio information that indicates a time at which audiois to be played by the one or more players in the zone group.

At block 1012, the playback device 702 may send the home theater audioinformation with the one or more timestamps to the plurality of hometheater players and send the zone group audio information with the zonegroup timestamp to the one or more players in the zone group.

FIG. 11 shows a flowchart 1100 representative of an example method toadjust time delay for the playback devices 704 and/or 706. According tothe figure, the system is intelligently adjusting time delays for hometheater and non-home theater groups of players based on the useradjustment. In one embodiment, the method 1100 is implemented insoftware and/or hardware of the playback device 702. Alternatively, themethod 1100 may be implemented by a designated device that is differentfrom the playback device 702.

At block 1102, the playback device 702 receives an audio signal from anaudio source, such as the video device 710 via the connection 722. Theaudio signal comprises digital audio information, although it isunderstood that the audio information may be analog and then convertedto a digital format. An example connection 722 is a TOSLINK, which is astandardized optical fiber connection. The playback device 702 receivesand decodes the audio stream.

At block 1104, the playback device 702 assigns a first timestamp to hometheater audio information contained in the audio signal, wherein thefirst timestamp indicates a first time at which audio is to be played bya first player of a plurality of home theater (HT) components orplayers. According to FIG. 7, HT components are represented by any ofplayback devices 702 and 706. The first timestamp includes a particulardelay component. For example, a first timestamp might be to play at 10ms, where 10 ms=t+5 ms+5 ms, where “t” represents an approximate timethat the video is displayed, 5 ms represents a time value that all hometheater players are delayed (e.g., a base delay), and 5 ms represents aspecific time delay tailored for an individual player or groups ofplayers.

At block 1106, the playback device 702 assigns a second timestamp to thezone group audio information contained in the audio signal, wherein thesecond timestamp indicates a second time at which audio is to be playedby a second player of a plurality of non-HT components or players,wherein the first and second players are different and the first andsecond times are different. According to FIG. 7, non-HT components arerepresented by any of the playback devices 706. The second timestampincludes a second delay component. For example, a second timestamp mightbe to play at 20 ms, where 20 ms=t+20 ms.

At block 1104, the playback device 702 receives a user command to adjusta delay that is to be played by the plurality of players. For example,the user may adjust the delay between the video and the audio to improvesynchronization between the video and audio. In another example, theuser may adjust the delay to improve the multichannel audio affectsdepending on, for example, the location of the user within the room. Inone example, different delays are used for speakers depending on, forexample, if the speaker is less than two feet from the user, the speakeris between two feet and ten feet from the user, and the speaker is morethan ten feet from the user.

At block 1108, the playback device 702 adjusts the first timedifferently than the second time responsive to the user command. Forexample, the first time corresponding to the HT components is adjusted,whereas the second time corresponding to the non-HT components are notadjusted. An example includes a first time to be played at t+5 ms+5 msand a second time to be played at t+20 ms, where again “t” represents anapproximate time that the video is displayed. When an adjustment ismade, such as +5 ms, then the first time might look like play at t+5ms+10 ms and the second time might stay the same. In other words, thesystem is trying to achieve a balance between a delay for HT componentsand a delay for non-HT components.

At block 1110, the playback device 702 sends the audio to the pluralityof players with the at least adjusted first time. In some instances, thefirst time is the only time adjusted. In some instances, the first timeand the second time are both adjusted, and in some instances, only thesecond time is adjusted. The first time and/or second time is adjustedvia the timestamps.

VII. Low-Latency Network

According to FIG. 7 described above, the HT network 718 is used by theplayback devices 702 and 704 to exchange (e.g., transmit and receive)information. In an embodiment, the HT network 718 represents alow-latency network to enable multi-channel audio, and in particular, toenable multi-channel audio in a home-theater like environment. Thefollowing definitions may be used throughout this disclosure, and inparticular, used to describe an example operation of a low-latencynetwork like HT network 718.

The terms “spectrum” or “wireless spectrum” refer to a range of wirelesscommunications frequencies, where different “spectra” (multiplespectrum) refer to different ranges of wireless frequencies. Differentspectra may or may not overlap. Different spectra may or may not becontiguous (i.e., may or may not have spectra between them). In someexamples disclosed herein, the term spectrum refers to a regulatoryspectrum as defined by a regulatory agency such as the FederalCommunications Commission (FCC) in the United States. For example, theFCC has allocated the “2.4 GHz spectrum” (or spectral band) to includethe frequency range of 2400 MHz to 2500 MHz for Industrial, Scientific,and Medical applications. Additionally, the FCC has allocated the “5 GHzspectrum” (or spectral band) to include the frequency range of about5.17 GHz to about 5.835 GHz, with some excepted bands within that range.

The terms “channel,” “audio channel,” “control channel,” and/or, moregenerally, “wireless channel,” all refer to a distinct frequency ordistinct sub-range(s) of frequencies within one or more spectra that maybe used to transmit particular information. A channel may be a band offrequencies, a non-contiguous set of frequencies and bands, a frequencyhopping configuration, time division multiplexing, code divisionmultiplexing, and/or any other type of communication frequencyarrangement.

The terms “primary” or “primary zone player” refer to a zone playerconfigured to control a low-latency audio network having zero or more“satellite” zone players. A “satellite” or “satellite zone player”refers to a zone player configured to provide low-latency audio incombination with a primary zone player. Both primary zone players andsatellite zone players may be configurable to operate in other audioplayback arrangements, such as in a zone group.

Referring back to FIG. 7, the playback device 702 may be considered aprimary zone player and the playback devices 704 may be considered thesatellite zone players. It is understood, however, that a standalonedevice may perform all, or most of, the functions associated with aprimary zone player, and as such, the disclosure is not limited to azone player operating as the primary device.

The term “low-latency audio” generally refers to audio played within athreshold time of another event (e.g., video played on a monitorsubstantially synchronized with audio played via a zone player). Forinstance, in some embodiments audio is considered low-latency when theaudio is played within a threshold time (e.g., at or around 30milliseconds) of the corresponding video being shown. In someembodiments, audio is considered low-latency when the audio is played(e.g., from a speaker) within a threshold time (e.g., at or around 30milliseconds) of being provided from a source of the audio (e.g., from amedia source such as a television, a cable set top box, a digital mediaplayer, a DVD player, a Blu-ray disc player, etc.). Other measures oflatency and low-latency may be used in different embodiments and evenhave different meanings depending on the application.

FIG. 12 shows an internal functional block diagram of an example primaryzone player to provide low-latency audio. The example primary zoneplayer 1200 of FIG. 12 may be used to implement any of the example zoneplayers 102-124 of FIG. 1. In some embodiments, the example primary zoneplayer 1200 may be used to implement one of the home theater zoneplayers 116, 118, 120. In some embodiments, the primary zone player 1200may be used to implement the playback device 702 in FIG. 7. In someembodiments, the primary zone player 1200 is a sound bar. As usedherein, a “sound bar” refers to a single playback device including anarray of speakers configured to replicate audio for video and toreplicate audio in general. In some instances, a sound bar may playthree channels of audio including a front right, center, and front left.In some instances, a sound bar may simulate or partially simulate asurround sound experience.

Like the example zone player 400 of FIG. 4, the example primary zoneplayer 1200 of FIG. 12 includes a processor 408, memory 410, an audioprocessing component 412, a module 414, an audio amplifier 416, speakers418, and one or more antenna(s) 420. These components are discussed inmore detail above. More or less components may be included depending onthe desired configuration. The example primary zone player 1200 of FIG.12 includes a network interface 1202 having a first interface 1204(Spectrum 1 interface) to communicate via a first wireless spectrum(e.g., the 2.4 GHz spectrum), a second interface 1206 (Spectrum 2interface) to communicate via a second wireless spectrum different fromthe first wireless spectrum (e.g., the 5 GHz spectrum), and a wiredinterface 406. The wired interface 406 is discussed above. The exampleprimary zone player 1200 may simultaneously or substantiallysimultaneously communicate via any or all of the interfaces 406, 1204,and 1206.

Each of the example interfaces 406, 1204, 1206 of FIG. 12 may have aunique identifier such as a unique Media Access Control (MAC) address.Thus, each of the example interfaces 406, 1204, 1206 may be addressedseparately, and the example primary zone player 1200 may communicateusing any or all of the interfaces 406, 1204, 1206 simultaneously if sodesired.

The example primary zone player 1200 of FIG. 12 further includes acontrol interface 1208 and an audio interface 1210. The controlinterface 1208 transmits and/or receives control information (e.g.,configuration information) wirelessly, for example, via the first andsecond spectrum interfaces 1204, 1206. For example, the controlinterface 1208 may communicate configuration information to one or moresatellite zone players and/or communicate configuration information toone or more other zone players via the first spectrum interface 1204. Insome examples, the control interface 1208 receives configurationinformation via the first spectrum interface 1204 from other zoneplayers. The example control interface 1208 additionally oralternatively communicates control information (e.g., channel probes,keep-alive probes, etc.) to satellite zone players via the secondspectrum interface 1206. It is also understood that the wired interface406 could instead (or in addition to the wireless interfaces 1204 and/or1206) to transmit and receive control information.

The example audio interface 1210 of FIG. 12 transmits audio informationand/or receives audio information via the interfaces 406, 412, 1204,1206. For example, the audio interface 1210 may receive digital audioinformation from an Internet source, from a local networked source(e.g., a computer via a LAN), and/or from another home theater componentsuch as a video device (e.g., a television set, a cable box, an opticalmedia player (DVD, Blu-ray disc, etc.), a digital media player, a videogame console) and/or any other type of audio source. The example audiointerface 1210 further transmits received audio information to one ormore zone players, including standard zone players (e.g., via line-outconnection such as RCA or optical output, or via a mesh network via thefirst spectrum interface 1204, such as a 2.4 GHz interface) and/orsatellite zone players (e.g., via a star network via the first spectruminterface 1204 and/or the second spectrum interface 1206). In someexamples, the audio interface 1210 transmits the audio information basedon control information provided by the control interface 1208.

To control which channels are used in the first and second spectra, theexample network interface 1202 further includes a channel selector 1212.The example channel selector 1212 selects channels in the firstspectrum. The example first spectrum interface 1204 transmits and/orreceives information via the selected channel. In some examples, thechannel is selected by a different device (e.g., an external device suchas another zone player), and the channel selector 1212 is provided withthe channel information via the first spectrum interface 1204. Theexample channel selector 1212 also selects channels for use in thesecond spectrum. The second spectrum interface 1206 transmits andreceives data via the selected channel(s) in the second spectrum.

In some examples, the currently selected channel may become unsuitablefor low latency audio, and another, more suitable channel is available.The example channel selector 1212 may select a new channel within thesame spectrum (e.g., the 5 GHz spectrum) and provide the channelinformation to the control interface 1208. The example control interface1208 generates and sends a probe or other configuration information,including a command to switch channels and the new channel information,to any connected satellite zone players. The example channel selector1212 then causes the second spectrum interface 1206 to change to the newselected channel. The audio interface 1210 may then continue to transmitaudio information on the new selected channel.

In some examples, the currently selected channel may become unsuitablefor low latency audio, and no other suitable channels are availablewithin the same spectrum. The example channel selector 1212 may select achannel within a different spectrum (e.g., the 2.4 GHz spectrum) andprovide the channel information to the control interface 1208. Theexample control interface 1208 generates and sends a probe or otherconfiguration information, including a command to switch channels andthe new channel and spectrum information, to any connected satellitezone players. The audio interface 1210 may then continue to transmitaudio information on the new channel of the different spectrum

The example primary zone player 1200 of FIG. 12 further includes aspanning tree protocol controller 1214 to control a spanning treeprotocol configuration. Spanning tree protocol refers to a networkprotocol that structures a network to avoid bridge loops by, ingeneral, 1) designating a root node, 2) calculating the least cost pathfrom other nodes to the root node, and 3) disabling other paths. Theexample primary zone player 1200 of FIG. 12 advantageously uses spanningtree protocol to communicate with satellite zone players and/or otherzone players in a mesh network. The use of spanning tree protocolenables the delivery of low-latency audio by determining shortest pathsbetween points and by reducing (e.g., avoiding) unnecessary hops of thelow-latency audio data between zone players. An example spanning treeprotocol configuration may be a spanning tree protocol table (e.g.,stored in the memory 410) that includes the ports and/or devices towhich the example primary zone player 1200 is connected. The examplespanning tree protocol controller 1214 reconfigures the spanning treeprotocol table when additional zone players are added and/or whenconfigurations of zone players change. For example, the spanning treeprotocol controller 1214 changes the spanning tree protocol table whenthe primary zone player 1200 disconnects from a satellite zone player(e.g., connected via a mesh networking mode) and reconnects to the samesatellite zone player in a different networking mode (e.g., a starnetworking mode).

In an example mode of operation, the control interface 1208 initially(e.g., on startup, on adding a satellite zone player to a zone playernetwork) communicates with one or more satellite zone players via thefirst spectrum interface 1204. The control interface 1208 transmitscontrol information to the satellite zone player(s) via a selectedchannel in the first spectrum. The example control information includesat least a selected channel in the second spectrum and an identifier ofthe primary zone player 1200 (e.g., to differentiate the primary zoneplayer 1200 from any other primary zone players that may be on the samenetwork). After transmitting the control information (and, in someembodiments, receiving acknowledgement from the satellite zoneplayer(s)), the example audio interface 1210 may begin transmittingaudio information to the satellite zone player(s). In some embodiments,the audio interface 1210 transmits zone player specific audioinformation to each of multiple zone players (e.g., left surroundchannel audio to a zone player configured as a left surround speaker,right surround channel audio to a zone player configured as a rightsurround speaker).

Continuing with the example, if the selected channel in the secondspectrum is inadequate (e.g., too much interference, too much latency,etc.), the example control interface 1208 of FIG. 12 transmits controlinformation to the satellite zone players to cause the satellite zoneplayers to revert to communicating with the primary zone player 1200 viaa channel in the first spectrum and the first spectrum interface 1204.The example channel selector 1212 selects a different channel in thesecond spectrum and transmits control information to the satellite zoneplayers identifying the newly selected channel.

FIG. 13 shows an internal functional block diagram of an examplesatellite zone player 1300 to provide low-latency audio in combinationwith the example primary zone player 1200 of FIG. 12. The examplesatellite zone player 1300 of FIG. 13 may be used to implement any ofthe example zone players 102-124 of FIG. 1 and/or the playback devices704 in FIG. 7. In some embodiments, the example primary zone player 1200may be used to implement any of the home theater zone players 116, 118,120 and/or may be satellite speakers (e.g., left/right surroundspeakers, subwoofers, etc.) to complement a sound bar-type surroundsound configuration.

Like the example zone player 400 of FIG. 4 and the example primary zoneplayer 1200 of FIG. 12, the example satellite zone player 1300 of FIG.13 includes a processor 408, memory 410, an audio processing component412, a module 414, an audio amplifier 416, speakers 418, and one or moreantenna(s) 420. These components are discussed in detail above. More orless components may be included depending on the desired configuration.The example satellite zone player 1300 of FIG. 13 includes a networkinterface 1302 having a dual spectrum interface 1304 (Spectrum 1/2interface) to communicate via a first wireless spectrum (e.g., the 2.4GHz spectrum) and a second wireless spectrum different from the firstwireless spectrum (e.g., the 5 GHz spectrum), and a wired interface 406.The wired interface 406 is discussed above.

In the examples of FIGS. 12 and 13, the dual spectrum interface 1304communicates in the same two spectra as the first and second wirelessinterfaces 1204, 1206. The example dual spectrum interface 1304 maycommunicate in either the first spectrum (e.g., on a wireless channel inthe first spectrum) or the second spectrum (e.g., on a wireless channelin the second spectrum) at a given time. In some other examples, thedual spectrum wireless interfaces 1204, 1206 may communicate in bothspectra simultaneously or substantially simultaneously. In someexamples, the dual spectrum interface 1304 is replaced with separatefirst and second wireless interfaces, which may be similar or identicalto the first and second wireless interfaces 1204, 1206 of FIG. 12. Insome embodiments, each wireless interface is assigned a unique address(e.g., a MAC address).

The example satellite zone player 1300 of FIG. 13 further includes acontrol interface 1306 and an audio interface 1308. The controlinterface 1306 and the audio interface 1308 transmit and/or receiveinformation (e.g., control information, audio information) via the dualspectrum interface 1304 and/or the wired interface 406. The examplecontrol interface 1306 receives control information via a channel (e.g.,from the primary zone player 1200 of FIG. 12) in a first spectrum (e.g.,Spectrum 1). The control information via the first spectrum indicates anaudio channel in a second spectrum (e.g., Spectrum 2) via which audioinformation in addition to control information is to be transmitted tothe satellite zone player 1300 from the primary zone player 1200. Theexample control interface 1306 also transmits control information, suchas probe acknowledgements, configuration information, deviceinformation, and/or other information used for control and/orconfiguration of the satellite zone player 1300 to a primary zone player1200 and/or to standard zone players.

The example audio interface 1308 of FIG. 13 receives audio informationto be played (e.g., via the speakers 418). The audio information may bereceived via an audio channel via which the dual spectrum interface 1304is communicating. In some examples, the audio interface 1308 determinesthat the received audio information has a high quality of servicecharacteristic and/or a low latency, indicating that the audio is to beplayed as soon as possible and/or at a designated time.

The example network interface 1302 of FIG. 13 further includes a channelselector 1310. The example channel selector 1310 selects a wirelesscommunications channel in the first spectrum or the second spectrum andcauses the dual spectrum interface 1304 to begin communicating on theselected channel.

In some examples, the control interface 1306 may receive a notificationfrom a primary zone player that communication is to be changed to adifferent channel in the second spectrum (e.g., the 5 GHz spectrum).This may occur if, for example, the channel being used has becomeunsuitable for low-latency audio and another, more suitable channel isavailable. The example control interface 1306 provides the new channelto the channel selector 1310, which causes the dual spectrum interface1304 to change channels within the same spectrum. In some examples, thecontrol interface 1306 may receive a notification from a primary zoneplayer that communication is to be changed to a channel in the firstspectrum (e.g., the 2.4 GHz spectrum). This may occur if, for example,the channel being used has become unsuitable for low-latency audio andno other more suitable channel is available in the second spectrum(e.g., 5 GHz spectrum). The example control interface 1306 provides thechannel to the channel selector 1310, which causes the dual spectruminterface 1304 to change channels and spectrum.

The example satellite zone player 1300 further includes a spanning treeprotocol controller 1312 to control a spanning tree protocolconfiguration based on receiving control information (e.g., from aprimary zone player). For example, a spanning tree protocolconfiguration may be a spanning tree protocol table (e.g., stored in thememory 410) that includes the ports and/or devices to which the examplesatellite zone player 1300 is connected. The example spanning treeprotocol controller 1312 reconfigures the spanning tree protocol tablewhen additional zone players are added and/or when configurations of thesatellite zone player 1300 changes. For example, the spanning treeprotocol controller 1312 changes the spanning tree protocol table whenthe satellite zone player 1300 is reconfigured to connect to a primaryzone player in a different networking mode (e.g., reconfigured from amesh networking mode to a star networking mode).

FIG. 14 shows a block diagram of an example zone player network 1400 inwhich a primary zone player 1402 is connected to satellite zone players1404, 1406 via a star network 1408 and to additional zone players 1410,1412 via a mesh network 1414. The example primary zone player 1402 andthe example satellite zone players 1404, 1406 may be configured in ahome theater arrangement in a single location (e.g., in the same room).The example zone players 1410, 1412 may be located in the same ordifferent rooms from the example primary and/or satellite zone players1402-1406. In an embodiment, the zone player network 1400 is like thenetwork 700 in FIG. 7, where the primary zone player 1402 is like theplayback device 702, the satellite zone players 1404, 1406 are like theplayback devices 704, and the additional zone players 1410, 1412 arelike playback devices 706. Additionally, in the embodiment, the starnetwork 1408 is like the HT network 718 in FIG. 7 and the mesh network1414 is like the ZG network 720.

The example primary zone player 1402 and the zone players 1410, 1412 arecommunicatively coupled via a first spectrum (e.g., a 2.4 GHz spectrumchannel). The example zone players 1402, 1410, 1412 in the mesh network1414 may communicate and/or synchronize audio information and/or controlinformation as described in U.S. Pat. No. 8,234,395, entitled, “Systemand method for synchronizing operations among a plurality ofindependently clocked digital data processing devices,” the entirety ofwhich is hereby incorporated by reference. At the direction of a user,additional zone players may be added to and/or removed from the meshnetwork 1414; any of the zone players 1402, 1410, 1412 may be removedfrom and/or rejoined to the mesh network 1414; and/or any combination ofthe primary zone player 1402, the zone player 1410, and/or the zoneplayer 1412 may be grouped into zone groups for synchronized playback ofaudio. In the example of FIG. 14, a user may choose to cause audioprovided to the primary zone player 1402 that is part of a zone groupwith one or more of the zone player(s) 1410, 1412 to also be played viathe satellite zone players 1404, 1406 in the star network 1408.

In the example of FIG. 14, in which the primary zone player 1402 iscoupled via respective star wireless connections 1416, 1418 to thesatellite zone players 1404, 1406. The establishment of the exampleconnections 1416, 1418 is described in more detail below. The exampleprimary zone player 1402 and the satellite zone players 1404, 1406 arecommunicatively coupled via a second spectrum (e.g., a 5 GHz spectrumchannel). The satellite zone players 1404, 1406 may be, for example,left and right rear surround speakers such as the Sonos PLAY:3™ zoneplayer. In some examples, one or more of the satellite zone players1404, 1406 is a subwoofer zone player such as the Sonos SUB zone player.

The primary zone player 1402 receives audio information from an audiosource (e.g., a television, a networked source, an Internet source, viathe zone player(s) 1410, 1412, etc.) to be played via the star network1408. The example primary zone player 1402 determines the audioinformation to be transmitted to respective ones of the examplesatellite zone players 1404, 1406. For example, the Dolby® Digitalfamily of surround sound technology provides for audio channelscorresponding to surround (e.g., rear) speakers. The primary zone player1402 transmits, via the second spectrum (e.g., 5 GHz spectrum) audiochannel, the respective audio information to the satellite zone players1404, 1406, which decode and play the audio information. In anembodiment, the primary zone player 1402 includes timing informationalong with the audio information to the satellite zone players 1404,1406.

In the example of FIG. 14, the primary zone player 1402 assignsdifferent quality of service indicators to different types ofinformation. For example, the primary zone player 1402 may assign thehighest quality of service (e.g., quality of service level 3) to audioinformation requiring a low latency (e.g., less than a thresholdlatency) that is transmitted to the satellite zone players 1404, 1406.The primary zone player 1402 may assign a next highest quality ofservice (e.g., quality of service level 2) to audio information from oneor more predetermined types of sources (e.g., a wired source, a hometheater source, etc.) that is not transmitted to a satellite zone player(e.g., is transmitted to the zone players 1410, 1412). The exampleprimary zone player 1402 assigns a next highest quality of service(e.g., quality of service level 1) to audio information from other typesof sources (or any source, if quality of service level 2 is not used)that is not transmitted to a satellite zone player (e.g., is transmittedto the zone players 1410, 1412). The example primary zone player 1402uses the lowest quality of service (e.g., quality of service level 0) totransmit background data (e.g., non-audio information, controlinformation, configuration information, etc.) to other zone players(e.g., zone players 1404, 1406, 1410, 1412). The use of quality ofservice enables the star network 1408 to provide low-latency audio,which improves user perception of a home theater presentation andreduces lag between video and audio to acceptable levels.

The description discloses various example systems, methods, apparatus,and articles of manufacture including, among other components, firmwareand/or software executed on hardware. However, such examples are merelyillustrative and should not be considered as limiting. For example, itis contemplated that any or all of these firmware, hardware, and/orsoftware components can be embodied exclusively in hardware, exclusivelyin software, exclusively in firmware, or in any combination of hardware,software, and/or firmware. Accordingly, while the following describesexample systems, methods, apparatus, and/or articles of manufacture, theexamples provided are not the only way(s) to implement such systems,methods, apparatus, and/or articles of manufacture.

Additionally, reference herein to “embodiment” means that a particularfeature, structure, or characteristic described in connection with theembodiment can be included in at least one example embodiment of theinvention. The appearances of this phrase in various places in thespecification are not necessarily all referring to the same embodiment,nor are separate or alternative embodiments mutually exclusive of otherembodiments. As such, the embodiments described herein, explicitly andimplicitly understood by one skilled in the art, can be combined withother embodiments.

The specification is presented largely in terms of illustrativeenvironments, systems, procedures, steps, logic blocks, processing, andother symbolic representations that directly or indirectly resemble theoperations of data processing devices coupled to networks. These processdescriptions and representations are typically used by those skilled inthe art to most effectively convey the substance of their work to othersskilled in the art. Numerous specific details are set forth to provide athorough understanding of the present disclosure. However, it isunderstood to those skilled in the art that certain embodiments of thepresent disclosure can be practiced without certain, specific details.In other instances, well known methods, procedures, components, andcircuitry have not been described in detail to avoid unnecessarilyobscuring aspects of the embodiments. Accordingly, the scope of thepresent disclosure is defined by the appended claims rather than theforgoing description of embodiments.

When any of the appended claims are read to cover a purely softwareand/or firmware implementation, at least one of the elements in at leastone example is hereby expressly defined to include a tangible mediumsuch as a memory, DVD, CD, Blu-ray, and so on, storing the softwareand/or firmware.

We claim:
 1. A method comprising: receiving an audio signal at a firstdevice from an audio source; identifying home theater audio informationcontained in the audio signal for playback by a plurality of hometheater players; identifying zone group audio information contained inthe audio signal for playback by one or more players in a zone group;assigning one or more timestamps to home theater audio information thatindicates a time at which audio is to be played by the plurality of hometheater players; assigning a zone group timestamp to the zone groupaudio information that indicates a time at which audio is to be playedby the one or more players in the zone group; and sending, from thefirst device, the home theater audio information with the one or moretimestamps to the plurality of home theater players and sending the zonegroup audio information with the zone group timestamp to the one or moreplayers in the zone group.
 2. The method of claim 1, wherein the firstdevice is a playback device.
 3. The method of claim 1, wherein the audiosource is a video device.
 4. The method of claim 1, wherein the firsttimestamp includes a first delay and the second timestamp includes asecond delay.
 5. The method of claim 1, further comprising determiningwhether the first device is coupled to the plurality of home theaterplayers.
 6. The method of claim 1, further comprising determiningwhether the first device is part of the zone group.
 7. The method ofclaim 1, further comprising separating the audio information intodifferent audio channels and assigning a timestamp to each differentaudio channel.
 8. The method of claim 1, further comprising assigninghome theater audio information to high priority queue at the hometheater players.
 9. The method of claim 1, wherein the home theateraudio information is sent to the plurality of home theater players usinga first wireless channel and the zone group audio information is sent tothe one or more players in the zone group over a second wireless channelthat is different from the first wireless channel.
 10. A tangiblemachine-readable medium having instructions stored thereon that, whenexecuted, cause a machine to at least: receive an audio signal at afirst device from an audio source; identify home theater audioinformation contained in the audio signal for playback by a plurality ofhome theater players; identify zone group audio information contained inthe audio signal for playback by one or more players in a zone group;assign one or more timestamps to home theater audio information thatindicates a time at which audio is to be played by the plurality of hometheater players; assign a zone group timestamp to the zone group audioinformation that indicates a time at which audio is to be played by theone or more players in the zone group; and send, from the first device,the home theater audio information with the one or more timestamps tothe plurality of home theater players and sending the zone group audioinformation with the zone group timestamp to the one or more players inthe zone group.
 11. A machine-readable medium as defined in claim 10,wherein the first device is a playback device.
 12. A machine-readablemedium as defined in claim 10, wherein the audio source is a videodevice.
 13. A machine-readable medium as defined in claim 10, whereinthe first timestamp includes a first delay and the second timestampincludes a second delay.
 14. A machine-readable medium as defined inclaim 10, the instructions to cause the machine to determine whether thefirst device is coupled to the plurality of home theater players.
 15. Amachine-readable medium as defined in claim 10, the instructions tocause the machine to determine whether the first device is part of thezone group.
 16. A machine-readable medium as defined in claim 10, theinstructions to cause the machine to separate the audio information intodifferent audio channels and assigning a timestamp to each differentaudio channel.
 17. A machine-readable medium as defined in claim 10, theinstructions to cause the machine to assign home theater audioinformation to high priority queue at the home theater players.
 18. Amachine-readable medium as defined in claim 10, wherein the home theateraudio information is sent to the plurality of home theater players usinga first wireless channel and the zone group audio information is sent tothe one or more players in the zone group over a second wireless channelthat is different from the first wireless channel.